<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="zh">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.9.8"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>My Project: drogon::HttpRequest类 参考</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr id="projectrow">
  <td id="projectalign">
   <div id="projectname">My Project
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- 制作者 Doxygen 1.9.8 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search/",'.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
  initMenu('',true,false,'search.php','搜索');
  $(document).ready(function() { init_search(); });
});
/* @license-end */
</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<div id="MSearchResults">
<div class="SRPage">
<div id="SRIndex">
<div id="SRResults"></div>
<div class="SRStatus" id="Loading">载入中...</div>
<div class="SRStatus" id="Searching">搜索中...</div>
<div class="SRStatus" id="NoMatches">未找到</div>
</div>
</div>
</div>
</div>

<div id="nav-path" class="navpath">
  <ul>
<li class="navelem"><a class="el" href="namespacedrogon.html">drogon</a></li><li class="navelem"><a class="el" href="classdrogon_1_1HttpRequest.html">HttpRequest</a></li>  </ul>
</div>
</div><!-- top -->
<div class="header">
  <div class="summary">
<a href="#pub-methods">Public 成员函数</a> &#124;
<a href="#pub-static-methods">静态 Public 成员函数</a> &#124;
<a href="classdrogon_1_1HttpRequest-members.html">所有成员列表</a>  </div>
  <div class="headertitle"><div class="title">drogon::HttpRequest类 参考<span class="mlabels"><span class="mlabel">abstract</span></span></div></div>
</div><!--header-->
<div class="contents">

<p>Abstract class for webapp developer to get or set the Http request;  
 <a href="classdrogon_1_1HttpRequest.html#details">更多...</a></p>

<p><code>#include &lt;<a class="el" href="HttpRequest_8h_source.html">HttpRequest.h</a>&gt;</code></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-methods" name="pub-methods"></a>
Public 成员函数</h2></td></tr>
<tr class="memitem:acc72785a533037e590f115fe5bd6c75d" id="r_acc72785a533037e590f115fe5bd6c75d"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
<tr class="memitem:acc72785a533037e590f115fe5bd6c75d"><td class="memTemplItemLeft" align="right" valign="top">&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classdrogon_1_1HttpRequest.html#acc72785a533037e590f115fe5bd6c75d">operator T</a> () const</td></tr>
<tr class="memdesc:acc72785a533037e590f115fe5bd6c75d"><td class="mdescLeft">&#160;</td><td class="mdescRight">This template enables implicit type conversion. For using this template, user must specialize the fromRequest template. For example a shared_ptr&lt;Json::Value&gt; specialization version is available above, so we can use the following code to get a json object:  <br /></td></tr>
<tr class="separator:acc72785a533037e590f115fe5bd6c75d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aeb190035600806be1061047c86435eb6" id="r_aeb190035600806be1061047c86435eb6"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
<tr class="memitem:aeb190035600806be1061047c86435eb6"><td class="memTemplItemLeft" align="right" valign="top">T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classdrogon_1_1HttpRequest.html#aeb190035600806be1061047c86435eb6">as</a> () const</td></tr>
<tr class="memdesc:aeb190035600806be1061047c86435eb6"><td class="mdescLeft">&#160;</td><td class="mdescRight">This template enables explicit type conversion, see the above template.  <br /></td></tr>
<tr class="separator:aeb190035600806be1061047c86435eb6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2669bfbd165bf1473ec0fa4a9feba16a" id="r_a2669bfbd165bf1473ec0fa4a9feba16a"><td class="memItemLeft" align="right" valign="top">virtual const char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdrogon_1_1HttpRequest.html#a2669bfbd165bf1473ec0fa4a9feba16a">methodString</a> () const =0</td></tr>
<tr class="memdesc:a2669bfbd165bf1473ec0fa4a9feba16a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the method string of the request, such as GET, POST, etc.  <br /></td></tr>
<tr class="separator:a2669bfbd165bf1473ec0fa4a9feba16a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6fb71306a047da66cb683e30354d8072" id="r_a6fb71306a047da66cb683e30354d8072"><td class="memItemLeft" align="right" valign="top">const char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdrogon_1_1HttpRequest.html#a6fb71306a047da66cb683e30354d8072">getMethodString</a> () const</td></tr>
<tr class="separator:a6fb71306a047da66cb683e30354d8072"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a048f166aa73dead14bbcc3f25bca38bf" id="r_a048f166aa73dead14bbcc3f25bca38bf"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespacedrogon.html#a4e9a968fbdc3aa357cefc8aca7e99642">HttpMethod</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdrogon_1_1HttpRequest.html#a048f166aa73dead14bbcc3f25bca38bf">method</a> () const =0</td></tr>
<tr class="memdesc:a048f166aa73dead14bbcc3f25bca38bf"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the enum type method of the request.  <br /></td></tr>
<tr class="separator:a048f166aa73dead14bbcc3f25bca38bf"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aac203d76e055c0fb33ebbeae09c3756a" id="r_aac203d76e055c0fb33ebbeae09c3756a"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacedrogon.html#a4e9a968fbdc3aa357cefc8aca7e99642">HttpMethod</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdrogon_1_1HttpRequest.html#aac203d76e055c0fb33ebbeae09c3756a">getMethod</a> () const</td></tr>
<tr class="separator:aac203d76e055c0fb33ebbeae09c3756a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6763d56768cd69bcd4192646afa1fd62" id="r_a6763d56768cd69bcd4192646afa1fd62"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdrogon_1_1HttpRequest.html#a6763d56768cd69bcd4192646afa1fd62">isHead</a> () const =0</td></tr>
<tr class="memdesc:a6763d56768cd69bcd4192646afa1fd62"><td class="mdescLeft">&#160;</td><td class="mdescRight">Check if the method is or was <a class="el" href="namespacedrogon.html#a4e9a968fbdc3aa357cefc8aca7e99642aed78e3fb60cf298f854ef1be5fb94868">HttpMethod::Head</a>  <br /></td></tr>
<tr class="separator:a6763d56768cd69bcd4192646afa1fd62"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a060bcdf3c731e9646844a382952520b4" id="r_a060bcdf3c731e9646844a382952520b4"><td class="memItemLeft" align="right" valign="top">virtual const std::string &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdrogon_1_1HttpRequest.html#a060bcdf3c731e9646844a382952520b4">getHeader</a> (std::string key) const =0</td></tr>
<tr class="memdesc:a060bcdf3c731e9646844a382952520b4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the header string identified by the key parameter.  <br /></td></tr>
<tr class="separator:a060bcdf3c731e9646844a382952520b4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2f88e7bc42b59b76bbd7010a8adaf74e" id="r_a2f88e7bc42b59b76bbd7010a8adaf74e"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdrogon_1_1HttpRequest.html#a2f88e7bc42b59b76bbd7010a8adaf74e">addHeader</a> (std::string field, const std::string &amp;value)=0</td></tr>
<tr class="memdesc:a2f88e7bc42b59b76bbd7010a8adaf74e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the header string identified by the field parameter  <br /></td></tr>
<tr class="separator:a2f88e7bc42b59b76bbd7010a8adaf74e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a413025134f2a459d3f2abf79d0c3ae0a" id="r_a413025134f2a459d3f2abf79d0c3ae0a"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdrogon_1_1HttpRequest.html#a413025134f2a459d3f2abf79d0c3ae0a">addHeader</a> (std::string field, std::string &amp;&amp;value)=0</td></tr>
<tr class="separator:a413025134f2a459d3f2abf79d0c3ae0a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a705b138e5b8d3b6c8927f5b79e1691d6" id="r_a705b138e5b8d3b6c8927f5b79e1691d6"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdrogon_1_1HttpRequest.html#a705b138e5b8d3b6c8927f5b79e1691d6">removeHeader</a> (std::string key)=0</td></tr>
<tr class="memdesc:a705b138e5b8d3b6c8927f5b79e1691d6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Remove the header identified by the key parameter.  <br /></td></tr>
<tr class="separator:a705b138e5b8d3b6c8927f5b79e1691d6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8527f153ba733cfdf4f9391ee4e5bdff" id="r_a8527f153ba733cfdf4f9391ee4e5bdff"><td class="memItemLeft" align="right" valign="top">virtual const std::string &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdrogon_1_1HttpRequest.html#a8527f153ba733cfdf4f9391ee4e5bdff">getCookie</a> (const std::string &amp;field) const =0</td></tr>
<tr class="memdesc:a8527f153ba733cfdf4f9391ee4e5bdff"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the cookie string identified by the field parameter  <br /></td></tr>
<tr class="separator:a8527f153ba733cfdf4f9391ee4e5bdff"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abc95612c7b9bc03d4480f8014d2c72d4" id="r_abc95612c7b9bc03d4480f8014d2c72d4"><td class="memItemLeft" align="right" valign="top">virtual const SafeStringMap&lt; std::string &gt; &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdrogon_1_1HttpRequest.html#abc95612c7b9bc03d4480f8014d2c72d4">headers</a> () const =0</td></tr>
<tr class="memdesc:abc95612c7b9bc03d4480f8014d2c72d4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get all headers of the request  <br /></td></tr>
<tr class="separator:abc95612c7b9bc03d4480f8014d2c72d4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aef85232dc8d3e5073d7e354abcc9eb5f" id="r_aef85232dc8d3e5073d7e354abcc9eb5f"><td class="memItemLeft" align="right" valign="top">const SafeStringMap&lt; std::string &gt; &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdrogon_1_1HttpRequest.html#aef85232dc8d3e5073d7e354abcc9eb5f">getHeaders</a> () const</td></tr>
<tr class="memdesc:aef85232dc8d3e5073d7e354abcc9eb5f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get all headers of the request  <br /></td></tr>
<tr class="separator:aef85232dc8d3e5073d7e354abcc9eb5f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a833666f1c88d6a75f2e443c6d6cb2549" id="r_a833666f1c88d6a75f2e443c6d6cb2549"><td class="memItemLeft" align="right" valign="top">virtual const SafeStringMap&lt; std::string &gt; &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdrogon_1_1HttpRequest.html#a833666f1c88d6a75f2e443c6d6cb2549">cookies</a> () const =0</td></tr>
<tr class="memdesc:a833666f1c88d6a75f2e443c6d6cb2549"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get all cookies of the request  <br /></td></tr>
<tr class="separator:a833666f1c88d6a75f2e443c6d6cb2549"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1cbed8e4eda7e691c57d787111378f18" id="r_a1cbed8e4eda7e691c57d787111378f18"><td class="memItemLeft" align="right" valign="top">const SafeStringMap&lt; std::string &gt; &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdrogon_1_1HttpRequest.html#a1cbed8e4eda7e691c57d787111378f18">getCookies</a> () const</td></tr>
<tr class="memdesc:a1cbed8e4eda7e691c57d787111378f18"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get all cookies of the request  <br /></td></tr>
<tr class="separator:a1cbed8e4eda7e691c57d787111378f18"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6b613b012cd4f11edcf3aa942949abc2" id="r_a6b613b012cd4f11edcf3aa942949abc2"><td class="memItemLeft" align="right" valign="top">virtual size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdrogon_1_1HttpRequest.html#a6b613b012cd4f11edcf3aa942949abc2">realContentLength</a> () const =0</td></tr>
<tr class="memdesc:a6b613b012cd4f11edcf3aa942949abc2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return content length parsed from the Content-Length header If no Content-Length header, return null.  <br /></td></tr>
<tr class="separator:a6b613b012cd4f11edcf3aa942949abc2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adb8f85ee0232567b0ec7e32f9d2cff01" id="r_adb8f85ee0232567b0ec7e32f9d2cff01"><td class="memItemLeft" align="right" valign="top">size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdrogon_1_1HttpRequest.html#adb8f85ee0232567b0ec7e32f9d2cff01">getRealContentLength</a> () const</td></tr>
<tr class="separator:adb8f85ee0232567b0ec7e32f9d2cff01"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a76f2e55af8c68dd74006f472ddf93b86" id="r_a76f2e55af8c68dd74006f472ddf93b86"><td class="memItemLeft" align="right" valign="top">virtual const std::string &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdrogon_1_1HttpRequest.html#a76f2e55af8c68dd74006f472ddf93b86">query</a> () const =0</td></tr>
<tr class="memdesc:a76f2e55af8c68dd74006f472ddf93b86"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the query string of the request.  <br /></td></tr>
<tr class="separator:a76f2e55af8c68dd74006f472ddf93b86"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acdd06fd1af970724c8423c2f2becd15b" id="r_acdd06fd1af970724c8423c2f2becd15b"><td class="memItemLeft" align="right" valign="top">const std::string &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdrogon_1_1HttpRequest.html#acdd06fd1af970724c8423c2f2becd15b">getQuery</a> () const</td></tr>
<tr class="memdesc:acdd06fd1af970724c8423c2f2becd15b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the query string of the request.  <br /></td></tr>
<tr class="separator:acdd06fd1af970724c8423c2f2becd15b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aacf900e89f8dc4ab25c83a52af0098a7" id="r_aacf900e89f8dc4ab25c83a52af0098a7"><td class="memItemLeft" align="right" valign="top">std::string_view&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdrogon_1_1HttpRequest.html#aacf900e89f8dc4ab25c83a52af0098a7">body</a> () const</td></tr>
<tr class="separator:aacf900e89f8dc4ab25c83a52af0098a7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8ffeaaa2b7558b8a765b5554559cc883" id="r_a8ffeaaa2b7558b8a765b5554559cc883"><td class="memItemLeft" align="right" valign="top">std::string_view&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdrogon_1_1HttpRequest.html#a8ffeaaa2b7558b8a765b5554559cc883">getBody</a> () const</td></tr>
<tr class="separator:a8ffeaaa2b7558b8a765b5554559cc883"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa4c7273cc87ad7a67ba15276b0599780" id="r_aa4c7273cc87ad7a67ba15276b0599780"><td class="memItemLeft" align="right" valign="top">virtual const char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdrogon_1_1HttpRequest.html#aa4c7273cc87ad7a67ba15276b0599780">bodyData</a> () const =0</td></tr>
<tr class="separator:aa4c7273cc87ad7a67ba15276b0599780"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a18ea1443c1e8e6a363536a44e69d2836" id="r_a18ea1443c1e8e6a363536a44e69d2836"><td class="memItemLeft" align="right" valign="top">virtual size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdrogon_1_1HttpRequest.html#a18ea1443c1e8e6a363536a44e69d2836">bodyLength</a> () const =0</td></tr>
<tr class="separator:a18ea1443c1e8e6a363536a44e69d2836"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a645260380cd6a0ecb0cfbb500e6780b6" id="r_a645260380cd6a0ecb0cfbb500e6780b6"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdrogon_1_1HttpRequest.html#a645260380cd6a0ecb0cfbb500e6780b6">setBody</a> (const std::string &amp;<a class="el" href="classdrogon_1_1HttpRequest.html#aacf900e89f8dc4ab25c83a52af0098a7">body</a>)=0</td></tr>
<tr class="memdesc:a645260380cd6a0ecb0cfbb500e6780b6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the content string of the request.  <br /></td></tr>
<tr class="separator:a645260380cd6a0ecb0cfbb500e6780b6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a631ea22a1cd899492755aa82cb248fe1" id="r_a631ea22a1cd899492755aa82cb248fe1"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdrogon_1_1HttpRequest.html#a631ea22a1cd899492755aa82cb248fe1">setBody</a> (std::string &amp;&amp;<a class="el" href="classdrogon_1_1HttpRequest.html#aacf900e89f8dc4ab25c83a52af0098a7">body</a>)=0</td></tr>
<tr class="memdesc:a631ea22a1cd899492755aa82cb248fe1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the content string of the request.  <br /></td></tr>
<tr class="separator:a631ea22a1cd899492755aa82cb248fe1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5f5eed4854c6b7568db430629ead60ae" id="r_a5f5eed4854c6b7568db430629ead60ae"><td class="memItemLeft" align="right" valign="top">virtual const std::string &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdrogon_1_1HttpRequest.html#a5f5eed4854c6b7568db430629ead60ae">path</a> () const =0</td></tr>
<tr class="memdesc:a5f5eed4854c6b7568db430629ead60ae"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the path of the request.  <br /></td></tr>
<tr class="separator:a5f5eed4854c6b7568db430629ead60ae"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7ddf25ec9dce5903d82a4fcb44c6b288" id="r_a7ddf25ec9dce5903d82a4fcb44c6b288"><td class="memItemLeft" align="right" valign="top">virtual const std::string &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdrogon_1_1HttpRequest.html#a7ddf25ec9dce5903d82a4fcb44c6b288">getOriginalPath</a> () const =0</td></tr>
<tr class="memdesc:a7ddf25ec9dce5903d82a4fcb44c6b288"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the original path of the request.(before url-decoding)  <br /></td></tr>
<tr class="separator:a7ddf25ec9dce5903d82a4fcb44c6b288"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a29bd261db20da296114b8510a07f337b" id="r_a29bd261db20da296114b8510a07f337b"><td class="memItemLeft" align="right" valign="top">const std::string &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdrogon_1_1HttpRequest.html#a29bd261db20da296114b8510a07f337b">getPath</a> () const</td></tr>
<tr class="memdesc:a29bd261db20da296114b8510a07f337b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the path of the request.  <br /></td></tr>
<tr class="separator:a29bd261db20da296114b8510a07f337b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8a94d310b1e01fe928a5427e73e4cfb9" id="r_a8a94d310b1e01fe928a5427e73e4cfb9"><td class="memItemLeft" align="right" valign="top">std::string_view&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdrogon_1_1HttpRequest.html#a8a94d310b1e01fe928a5427e73e4cfb9">getMatchedPathPattern</a> () const</td></tr>
<tr class="memdesc:a8a94d310b1e01fe928a5427e73e4cfb9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the matched path pattern after routing  <br /></td></tr>
<tr class="separator:a8a94d310b1e01fe928a5427e73e4cfb9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4bd8206194768d907decd10ae565d600" id="r_a4bd8206194768d907decd10ae565d600"><td class="memItemLeft" align="right" valign="top">std::string_view&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdrogon_1_1HttpRequest.html#a4bd8206194768d907decd10ae565d600">matchedPathPattern</a> () const</td></tr>
<tr class="memdesc:a4bd8206194768d907decd10ae565d600"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the matched path pattern after routing  <br /></td></tr>
<tr class="separator:a4bd8206194768d907decd10ae565d600"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a04f4ade116aa2a55bc0294983c00dfe4" id="r_a04f4ade116aa2a55bc0294983c00dfe4"><td class="memItemLeft" align="right" valign="top">virtual const std::vector&lt; std::string &gt; &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdrogon_1_1HttpRequest.html#a04f4ade116aa2a55bc0294983c00dfe4">getRoutingParameters</a> () const =0</td></tr>
<tr class="separator:a04f4ade116aa2a55bc0294983c00dfe4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5f7ca8804ae1b294a02ce4b6dea25b57" id="r_a5f7ca8804ae1b294a02ce4b6dea25b57"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdrogon_1_1HttpRequest.html#a5f7ca8804ae1b294a02ce4b6dea25b57">setRoutingParameters</a> (std::vector&lt; std::string &gt; &amp;&amp;params)=0</td></tr>
<tr class="memdesc:a5f7ca8804ae1b294a02ce4b6dea25b57"><td class="mdescLeft">&#160;</td><td class="mdescRight">This method usually is called by the framework.  <br /></td></tr>
<tr class="separator:a5f7ca8804ae1b294a02ce4b6dea25b57"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acd5462a19d0f6e58e59eccb54a0e3417" id="r_acd5462a19d0f6e58e59eccb54a0e3417"><td class="memItemLeft" align="right" valign="top">virtual const char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdrogon_1_1HttpRequest.html#acd5462a19d0f6e58e59eccb54a0e3417">matchedPathPatternData</a> () const =0</td></tr>
<tr class="separator:acd5462a19d0f6e58e59eccb54a0e3417"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a864a6d9debc84e0ee3b47bd367ff2f39" id="r_a864a6d9debc84e0ee3b47bd367ff2f39"><td class="memItemLeft" align="right" valign="top">virtual size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdrogon_1_1HttpRequest.html#a864a6d9debc84e0ee3b47bd367ff2f39">matchedPathPatternLength</a> () const =0</td></tr>
<tr class="separator:a864a6d9debc84e0ee3b47bd367ff2f39"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af7933dab06e890a0a239273a4679dc85" id="r_af7933dab06e890a0a239273a4679dc85"><td class="memItemLeft" align="right" valign="top">virtual const char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdrogon_1_1HttpRequest.html#af7933dab06e890a0a239273a4679dc85">versionString</a> () const =0</td></tr>
<tr class="separator:af7933dab06e890a0a239273a4679dc85"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4f11566aaf1af116d0c2e036ef4a1bfc" id="r_a4f11566aaf1af116d0c2e036ef4a1bfc"><td class="memItemLeft" align="right" valign="top">const char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdrogon_1_1HttpRequest.html#a4f11566aaf1af116d0c2e036ef4a1bfc">getVersionString</a> () const</td></tr>
<tr class="separator:a4f11566aaf1af116d0c2e036ef4a1bfc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a096b7dd2522108681042cd31a648ec15" id="r_a096b7dd2522108681042cd31a648ec15"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespacedrogon.html#ac6b3a6bb435a379d956658fa20b067c1">Version</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdrogon_1_1HttpRequest.html#a096b7dd2522108681042cd31a648ec15">version</a> () const =0</td></tr>
<tr class="memdesc:a096b7dd2522108681042cd31a648ec15"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the enum type version of the request.  <br /></td></tr>
<tr class="separator:a096b7dd2522108681042cd31a648ec15"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5ab9cf2fd734dcd1cbfa861889e269d5" id="r_a5ab9cf2fd734dcd1cbfa861889e269d5"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacedrogon.html#ac6b3a6bb435a379d956658fa20b067c1">Version</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdrogon_1_1HttpRequest.html#a5ab9cf2fd734dcd1cbfa861889e269d5">getVersion</a> () const</td></tr>
<tr class="memdesc:a5ab9cf2fd734dcd1cbfa861889e269d5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the enum type version of the request.  <br /></td></tr>
<tr class="separator:a5ab9cf2fd734dcd1cbfa861889e269d5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4c2f90190752e4807b9e0f482617929c" id="r_a4c2f90190752e4807b9e0f482617929c"><td class="memItemLeft" align="right" valign="top">virtual const <a class="el" href="namespacedrogon.html#af0ccaa26ab9bac38fbfa3caf29a9d970">SessionPtr</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdrogon_1_1HttpRequest.html#a4c2f90190752e4807b9e0f482617929c">session</a> () const =0</td></tr>
<tr class="memdesc:a4c2f90190752e4807b9e0f482617929c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the session to which the request belongs.  <br /></td></tr>
<tr class="separator:a4c2f90190752e4807b9e0f482617929c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8675d231a9703a305a32c8a8ca05baaf" id="r_a8675d231a9703a305a32c8a8ca05baaf"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="namespacedrogon.html#af0ccaa26ab9bac38fbfa3caf29a9d970">SessionPtr</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdrogon_1_1HttpRequest.html#a8675d231a9703a305a32c8a8ca05baaf">getSession</a> () const</td></tr>
<tr class="memdesc:a8675d231a9703a305a32c8a8ca05baaf"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the session to which the request belongs.  <br /></td></tr>
<tr class="separator:a8675d231a9703a305a32c8a8ca05baaf"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:accf1907d36f509e06f266266139b3b63" id="r_accf1907d36f509e06f266266139b3b63"><td class="memItemLeft" align="right" valign="top">virtual const <a class="el" href="namespacedrogon.html#aa12d27459d310871d4c93167431514c9">AttributesPtr</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdrogon_1_1HttpRequest.html#accf1907d36f509e06f266266139b3b63">attributes</a> () const =0</td></tr>
<tr class="separator:accf1907d36f509e06f266266139b3b63"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5f1896551c6cd9312193199f695d96bb" id="r_a5f1896551c6cd9312193199f695d96bb"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="namespacedrogon.html#aa12d27459d310871d4c93167431514c9">AttributesPtr</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdrogon_1_1HttpRequest.html#a5f1896551c6cd9312193199f695d96bb">getAttributes</a> () const</td></tr>
<tr class="separator:a5f1896551c6cd9312193199f695d96bb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a54bb14c12a910bd555547d5a537db214" id="r_a54bb14c12a910bd555547d5a537db214"><td class="memItemLeft" align="right" valign="top">virtual const SafeStringMap&lt; std::string &gt; &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdrogon_1_1HttpRequest.html#a54bb14c12a910bd555547d5a537db214">parameters</a> () const =0</td></tr>
<tr class="memdesc:a54bb14c12a910bd555547d5a537db214"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get parameters of the request.  <br /></td></tr>
<tr class="separator:a54bb14c12a910bd555547d5a537db214"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a753fbdc4223c99d80c1707aa9e5178ce" id="r_a753fbdc4223c99d80c1707aa9e5178ce"><td class="memItemLeft" align="right" valign="top">const SafeStringMap&lt; std::string &gt; &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdrogon_1_1HttpRequest.html#a753fbdc4223c99d80c1707aa9e5178ce">getParameters</a> () const</td></tr>
<tr class="memdesc:a753fbdc4223c99d80c1707aa9e5178ce"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get parameters of the request.  <br /></td></tr>
<tr class="separator:a753fbdc4223c99d80c1707aa9e5178ce"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a28bf720d0a46cf02ad35a306e74c7be9" id="r_a28bf720d0a46cf02ad35a306e74c7be9"><td class="memItemLeft" align="right" valign="top">virtual const std::string &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdrogon_1_1HttpRequest.html#a28bf720d0a46cf02ad35a306e74c7be9">getParameter</a> (const std::string &amp;key) const =0</td></tr>
<tr class="memdesc:a28bf720d0a46cf02ad35a306e74c7be9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get a parameter identified by the  <br /></td></tr>
<tr class="separator:a28bf720d0a46cf02ad35a306e74c7be9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5a69f21ad5799947e3f0913a7ee092e7" id="r_a5a69f21ad5799947e3f0913a7ee092e7"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
<tr class="memitem:a5a69f21ad5799947e3f0913a7ee092e7"><td class="memTemplItemLeft" align="right" valign="top">std::optional&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classdrogon_1_1HttpRequest.html#a5a69f21ad5799947e3f0913a7ee092e7">getOptionalParameter</a> (const std::string &amp;key)</td></tr>
<tr class="memdesc:a5a69f21ad5799947e3f0913a7ee092e7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the optional parameter identified by the <code>key</code>. if the parameter doesn't exist, or the original parameter can't be converted to a T type object, an empty optional object is returned.  <br /></td></tr>
<tr class="separator:a5a69f21ad5799947e3f0913a7ee092e7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a609abcdabd8afa356ecb812cd16caa4e" id="r_a609abcdabd8afa356ecb812cd16caa4e"><td class="memItemLeft" align="right" valign="top">virtual const trantor::InetAddress &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdrogon_1_1HttpRequest.html#a609abcdabd8afa356ecb812cd16caa4e">peerAddr</a> () const =0</td></tr>
<tr class="memdesc:a609abcdabd8afa356ecb812cd16caa4e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the remote IP address and port  <br /></td></tr>
<tr class="separator:a609abcdabd8afa356ecb812cd16caa4e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a62ca076631e1531bf352495d9d8fcbd2" id="r_a62ca076631e1531bf352495d9d8fcbd2"><td class="memItemLeft" align="right" valign="top">const trantor::InetAddress &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdrogon_1_1HttpRequest.html#a62ca076631e1531bf352495d9d8fcbd2">getPeerAddr</a> () const</td></tr>
<tr class="separator:a62ca076631e1531bf352495d9d8fcbd2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a80e2f03b2d000eaadc050a92efb85201" id="r_a80e2f03b2d000eaadc050a92efb85201"><td class="memItemLeft" align="right" valign="top">virtual const trantor::InetAddress &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdrogon_1_1HttpRequest.html#a80e2f03b2d000eaadc050a92efb85201">localAddr</a> () const =0</td></tr>
<tr class="memdesc:a80e2f03b2d000eaadc050a92efb85201"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the local IP address and port  <br /></td></tr>
<tr class="separator:a80e2f03b2d000eaadc050a92efb85201"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a79c9603f62bd98c7e1dbfac96509c45a" id="r_a79c9603f62bd98c7e1dbfac96509c45a"><td class="memItemLeft" align="right" valign="top">const trantor::InetAddress &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdrogon_1_1HttpRequest.html#a79c9603f62bd98c7e1dbfac96509c45a">getLocalAddr</a> () const</td></tr>
<tr class="separator:a79c9603f62bd98c7e1dbfac96509c45a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a024176b2a34ceb593535879e7c4c5fc6" id="r_a024176b2a34ceb593535879e7c4c5fc6"><td class="memItemLeft" align="right" valign="top">virtual const trantor::Date &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdrogon_1_1HttpRequest.html#a024176b2a34ceb593535879e7c4c5fc6">creationDate</a> () const =0</td></tr>
<tr class="memdesc:a024176b2a34ceb593535879e7c4c5fc6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the creation timestamp set by the framework.  <br /></td></tr>
<tr class="separator:a024176b2a34ceb593535879e7c4c5fc6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa71a4f5111ad3a9e839001bf778130d2" id="r_aa71a4f5111ad3a9e839001bf778130d2"><td class="memItemLeft" align="right" valign="top">const trantor::Date &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdrogon_1_1HttpRequest.html#aa71a4f5111ad3a9e839001bf778130d2">getCreationDate</a> () const</td></tr>
<tr class="separator:aa71a4f5111ad3a9e839001bf778130d2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adcf8ea232ecc123049303ea898fc23ca" id="r_adcf8ea232ecc123049303ea898fc23ca"><td class="memItemLeft" align="right" valign="top">virtual const trantor::CertificatePtr &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdrogon_1_1HttpRequest.html#adcf8ea232ecc123049303ea898fc23ca">peerCertificate</a> () const =0</td></tr>
<tr class="separator:adcf8ea232ecc123049303ea898fc23ca"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a367158ef76fe6512fc999e4002ef3779" id="r_a367158ef76fe6512fc999e4002ef3779"><td class="memItemLeft" align="right" valign="top">const trantor::CertificatePtr &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdrogon_1_1HttpRequest.html#a367158ef76fe6512fc999e4002ef3779">getPeerCertificate</a> () const</td></tr>
<tr class="separator:a367158ef76fe6512fc999e4002ef3779"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aaa642f22265dd40f58e1c649e9617192" id="r_aaa642f22265dd40f58e1c649e9617192"><td class="memItemLeft" align="right" valign="top">virtual const std::shared_ptr&lt; Json::Value &gt; &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdrogon_1_1HttpRequest.html#aaa642f22265dd40f58e1c649e9617192">jsonObject</a> () const =0</td></tr>
<tr class="memdesc:aaa642f22265dd40f58e1c649e9617192"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the Json object of the request  <br /></td></tr>
<tr class="separator:aaa642f22265dd40f58e1c649e9617192"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5b67088a4acf8e30a6a4954b8ec10ad6" id="r_a5b67088a4acf8e30a6a4954b8ec10ad6"><td class="memItemLeft" align="right" valign="top">const std::shared_ptr&lt; Json::Value &gt; &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdrogon_1_1HttpRequest.html#a5b67088a4acf8e30a6a4954b8ec10ad6">getJsonObject</a> () const</td></tr>
<tr class="memdesc:a5b67088a4acf8e30a6a4954b8ec10ad6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the Json object of the request  <br /></td></tr>
<tr class="separator:a5b67088a4acf8e30a6a4954b8ec10ad6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:accd71d5fa4f022a658b425fb9af400e3" id="r_accd71d5fa4f022a658b425fb9af400e3"><td class="memItemLeft" align="right" valign="top">virtual const std::string &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdrogon_1_1HttpRequest.html#accd71d5fa4f022a658b425fb9af400e3">getJsonError</a> () const =0</td></tr>
<tr class="memdesc:accd71d5fa4f022a658b425fb9af400e3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the error message of parsing the JSON body received from peer. This method usually is called after getting a empty shared_ptr object by the <a class="el" href="classdrogon_1_1HttpRequest.html#a5b67088a4acf8e30a6a4954b8ec10ad6" title="Get the Json object of the request">getJsonObject()</a> method.  <br /></td></tr>
<tr class="separator:accd71d5fa4f022a658b425fb9af400e3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3f95b9911ee19fb729bc601a72999c74" id="r_a3f95b9911ee19fb729bc601a72999c74"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespacedrogon.html#a2037a41934aeea1598d7468b4b8cb823">ContentType</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdrogon_1_1HttpRequest.html#a3f95b9911ee19fb729bc601a72999c74">contentType</a> () const =0</td></tr>
<tr class="memdesc:a3f95b9911ee19fb729bc601a72999c74"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the content type  <br /></td></tr>
<tr class="separator:a3f95b9911ee19fb729bc601a72999c74"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5069f8c4bf4d31efac1b03c1c676bfa7" id="r_a5069f8c4bf4d31efac1b03c1c676bfa7"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacedrogon.html#a2037a41934aeea1598d7468b4b8cb823">ContentType</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdrogon_1_1HttpRequest.html#a5069f8c4bf4d31efac1b03c1c676bfa7">getContentType</a> () const</td></tr>
<tr class="separator:a5069f8c4bf4d31efac1b03c1c676bfa7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad10c2740f72a0861ed8cf57e439b8a01" id="r_ad10c2740f72a0861ed8cf57e439b8a01"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdrogon_1_1HttpRequest.html#ad10c2740f72a0861ed8cf57e439b8a01">setMethod</a> (const <a class="el" href="namespacedrogon.html#a4e9a968fbdc3aa357cefc8aca7e99642">HttpMethod</a> <a class="el" href="classdrogon_1_1HttpRequest.html#a048f166aa73dead14bbcc3f25bca38bf">method</a>)=0</td></tr>
<tr class="memdesc:ad10c2740f72a0861ed8cf57e439b8a01"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the Http method  <br /></td></tr>
<tr class="separator:ad10c2740f72a0861ed8cf57e439b8a01"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4e12be07501f106474ab3502f0a14a44" id="r_a4e12be07501f106474ab3502f0a14a44"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdrogon_1_1HttpRequest.html#a4e12be07501f106474ab3502f0a14a44">setPath</a> (const std::string &amp;<a class="el" href="classdrogon_1_1HttpRequest.html#a5f5eed4854c6b7568db430629ead60ae">path</a>)=0</td></tr>
<tr class="memdesc:a4e12be07501f106474ab3502f0a14a44"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the path of the request  <br /></td></tr>
<tr class="separator:a4e12be07501f106474ab3502f0a14a44"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4a0e6b6f5fa434aa6efebf98f21c406a" id="r_a4a0e6b6f5fa434aa6efebf98f21c406a"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdrogon_1_1HttpRequest.html#a4a0e6b6f5fa434aa6efebf98f21c406a">setPath</a> (std::string &amp;&amp;<a class="el" href="classdrogon_1_1HttpRequest.html#a5f5eed4854c6b7568db430629ead60ae">path</a>)=0</td></tr>
<tr class="separator:a4a0e6b6f5fa434aa6efebf98f21c406a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a60d2ce355c5daa9d284a744342b9fb58" id="r_a60d2ce355c5daa9d284a744342b9fb58"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdrogon_1_1HttpRequest.html#a60d2ce355c5daa9d284a744342b9fb58">setPathEncode</a> (bool)=0</td></tr>
<tr class="memdesc:a60d2ce355c5daa9d284a744342b9fb58"><td class="mdescLeft">&#160;</td><td class="mdescRight">The default behavior is to encode the value of setPath using urlEncode. Setting the path encode to false avoid the value of path will be changed by the library  <br /></td></tr>
<tr class="separator:a60d2ce355c5daa9d284a744342b9fb58"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5e180b9572c51f1404dde91786efd8eb" id="r_a5e180b9572c51f1404dde91786efd8eb"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdrogon_1_1HttpRequest.html#a5e180b9572c51f1404dde91786efd8eb">setParameter</a> (const std::string &amp;key, const std::string &amp;value)=0</td></tr>
<tr class="memdesc:a5e180b9572c51f1404dde91786efd8eb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the parameter of the request  <br /></td></tr>
<tr class="separator:a5e180b9572c51f1404dde91786efd8eb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa4c26d3241c102624af7c35cec6f6428" id="r_aa4c26d3241c102624af7c35cec6f6428"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdrogon_1_1HttpRequest.html#aa4c26d3241c102624af7c35cec6f6428">setContentTypeCode</a> (const <a class="el" href="namespacedrogon.html#a2037a41934aeea1598d7468b4b8cb823">ContentType</a> type)=0</td></tr>
<tr class="memdesc:aa4c26d3241c102624af7c35cec6f6428"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set or get the content type  <br /></td></tr>
<tr class="separator:aa4c26d3241c102624af7c35cec6f6428"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3b301645ade6d935e8e3774aa6a20256" id="r_a3b301645ade6d935e8e3774aa6a20256"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdrogon_1_1HttpRequest.html#a3b301645ade6d935e8e3774aa6a20256">setContentTypeString</a> (const std::string_view &amp;typeString)</td></tr>
<tr class="memdesc:a3b301645ade6d935e8e3774aa6a20256"><td class="mdescLeft">&#160;</td><td class="mdescRight">For example, "content-type: text/plain\r\n" or "text/plain"  <br /></td></tr>
<tr class="separator:a3b301645ade6d935e8e3774aa6a20256"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a58760d7eb7ea7eb8a48fb5a625bd2b9a" id="r_a58760d7eb7ea7eb8a48fb5a625bd2b9a"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdrogon_1_1HttpRequest.html#a58760d7eb7ea7eb8a48fb5a625bd2b9a">setCustomContentTypeString</a> (const std::string &amp;type)=0</td></tr>
<tr class="separator:a58760d7eb7ea7eb8a48fb5a625bd2b9a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7a10862a08ca04d852484c30b3e6bcbe" id="r_a7a10862a08ca04d852484c30b3e6bcbe"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdrogon_1_1HttpRequest.html#a7a10862a08ca04d852484c30b3e6bcbe">addCookie</a> (std::string key, std::string value)=0</td></tr>
<tr class="memdesc:a7a10862a08ca04d852484c30b3e6bcbe"><td class="mdescLeft">&#160;</td><td class="mdescRight">Add a cookie  <br /></td></tr>
<tr class="separator:a7a10862a08ca04d852484c30b3e6bcbe"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acc00a936c71b0e19e6e78f482c15a8de" id="r_acc00a936c71b0e19e6e78f482c15a8de"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdrogon_1_1HttpRequest.html#acc00a936c71b0e19e6e78f482c15a8de">setPassThrough</a> (bool flag)=0</td></tr>
<tr class="memdesc:acc00a936c71b0e19e6e78f482c15a8de"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the request object to the pass-through mode or not. It's not by default when a new request object is created. In pass-through mode, no additional headers (including user-agent, connection, etc.) are added to the request. This mode is useful for some applications such as a proxy.  <br /></td></tr>
<tr class="separator:acc00a936c71b0e19e6e78f482c15a8de"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acfe3fda6caec7005531122271dee5f40" id="r_acfe3fda6caec7005531122271dee5f40"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdrogon_1_1HttpRequest.html#acfe3fda6caec7005531122271dee5f40">isOnSecureConnection</a> () const noexcept=0</td></tr>
<tr class="separator:acfe3fda6caec7005531122271dee5f40"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a12c2921e141a4c70e0ab798ec17c3ffd" id="r_a12c2921e141a4c70e0ab798ec17c3ffd"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdrogon_1_1HttpRequest.html#a12c2921e141a4c70e0ab798ec17c3ffd">setContentTypeString</a> (const char *typeString, size_t typeStringLength)=0</td></tr>
<tr class="separator:a12c2921e141a4c70e0ab798ec17c3ffd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac5b6341fa423f837eb2ddfff2e11b4c0" id="r_ac5b6341fa423f837eb2ddfff2e11b4c0"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdrogon_1_1HttpRequest.html#ac5b6341fa423f837eb2ddfff2e11b4c0">connected</a> () const noexcept=0</td></tr>
<tr class="separator:ac5b6341fa423f837eb2ddfff2e11b4c0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a491744aad77bbeb7537acece42333d78" id="r_a491744aad77bbeb7537acece42333d78"><td class="memItemLeft" align="right" valign="top">virtual const std::weak_ptr&lt; trantor::TcpConnection &gt; &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdrogon_1_1HttpRequest.html#a491744aad77bbeb7537acece42333d78">getConnectionPtr</a> () const noexcept=0</td></tr>
<tr class="separator:a491744aad77bbeb7537acece42333d78"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae1f9f0b9316284d88a1ff53f381aa4d1" id="r_ae1f9f0b9316284d88a1ff53f381aa4d1"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdrogon_1_1HttpRequest.html#ae1f9f0b9316284d88a1ff53f381aa4d1">~HttpRequest</a> ()</td></tr>
<tr class="separator:ae1f9f0b9316284d88a1ff53f381aa4d1"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-static-methods" name="pub-static-methods"></a>
静态 Public 成员函数</h2></td></tr>
<tr class="memitem:a4ce310707acce8c34bbc60cb217acd28" id="r_a4ce310707acce8c34bbc60cb217acd28"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="namespacedrogon.html#a5200699555f98a809538342baa167aad">HttpRequestPtr</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdrogon_1_1HttpRequest.html#a4ce310707acce8c34bbc60cb217acd28">newHttpRequest</a> ()</td></tr>
<tr class="memdesc:a4ce310707acce8c34bbc60cb217acd28"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create a normal request with http method Get and version Http1.1.  <br /></td></tr>
<tr class="separator:a4ce310707acce8c34bbc60cb217acd28"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aca350e8c1b4ee54458d13c5cbde47950" id="r_aca350e8c1b4ee54458d13c5cbde47950"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="namespacedrogon.html#a5200699555f98a809538342baa167aad">HttpRequestPtr</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdrogon_1_1HttpRequest.html#aca350e8c1b4ee54458d13c5cbde47950">newHttpJsonRequest</a> (const Json::Value &amp;data)</td></tr>
<tr class="separator:aca350e8c1b4ee54458d13c5cbde47950"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4b41057d6a8dd9042f889d92ae5d4472" id="r_a4b41057d6a8dd9042f889d92ae5d4472"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="namespacedrogon.html#a5200699555f98a809538342baa167aad">HttpRequestPtr</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdrogon_1_1HttpRequest.html#a4b41057d6a8dd9042f889d92ae5d4472">newHttpFormPostRequest</a> ()</td></tr>
<tr class="separator:a4b41057d6a8dd9042f889d92ae5d4472"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af86db6d05493f9b70823b74c1ce596a1" id="r_af86db6d05493f9b70823b74c1ce596a1"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="namespacedrogon.html#a5200699555f98a809538342baa167aad">HttpRequestPtr</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdrogon_1_1HttpRequest.html#af86db6d05493f9b70823b74c1ce596a1">newFileUploadRequest</a> (const std::vector&lt; <a class="el" href="classdrogon_1_1UploadFile.html">UploadFile</a> &gt; &amp;files)</td></tr>
<tr class="separator:af86db6d05493f9b70823b74c1ce596a1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a005a1d7c15be4a8abe28242c24e9ac61" id="r_a005a1d7c15be4a8abe28242c24e9ac61"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
<tr class="memitem:a005a1d7c15be4a8abe28242c24e9ac61"><td class="memTemplItemLeft" align="right" valign="top">static <a class="el" href="namespacedrogon.html#a5200699555f98a809538342baa167aad">HttpRequestPtr</a>&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classdrogon_1_1HttpRequest.html#a005a1d7c15be4a8abe28242c24e9ac61">newCustomHttpRequest</a> (T &amp;&amp;obj)</td></tr>
<tr class="memdesc:a005a1d7c15be4a8abe28242c24e9ac61"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create a custom HTTP request object. For using this template, users must specialize the toRequest template.  <br /></td></tr>
<tr class="separator:a005a1d7c15be4a8abe28242c24e9ac61"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">详细描述</h2>
<div class="textblock"><p>Abstract class for webapp developer to get or set the Http request; </p>
</div><h2 class="groupheader">构造及析构函数说明</h2>
<a id="ae1f9f0b9316284d88a1ff53f381aa4d1" name="ae1f9f0b9316284d88a1ff53f381aa4d1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae1f9f0b9316284d88a1ff53f381aa4d1">&#9670;&#160;</a></span>~HttpRequest()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual drogon::HttpRequest::~HttpRequest </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<h2 class="groupheader">成员函数说明</h2>
<a id="a7a10862a08ca04d852484c30b3e6bcbe" name="a7a10862a08ca04d852484c30b3e6bcbe"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a7a10862a08ca04d852484c30b3e6bcbe">&#9670;&#160;</a></span>addCookie()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual void drogon::HttpRequest::addCookie </td>
          <td>(</td>
          <td class="paramtype">std::string&#160;</td>
          <td class="paramname"><em>key</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">std::string&#160;</td>
          <td class="paramname"><em>value</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Add a cookie </p>

</div>
</div>
<a id="a2f88e7bc42b59b76bbd7010a8adaf74e" name="a2f88e7bc42b59b76bbd7010a8adaf74e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2f88e7bc42b59b76bbd7010a8adaf74e">&#9670;&#160;</a></span>addHeader() <span class="overload">[1/2]</span></h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual void drogon::HttpRequest::addHeader </td>
          <td>(</td>
          <td class="paramtype">std::string&#160;</td>
          <td class="paramname"><em>field</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const std::string &amp;&#160;</td>
          <td class="paramname"><em>value</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Set the header string identified by the field parameter </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramname">field</td><td>The field parameter is transformed to lower case before storing. </td></tr>
    <tr><td class="paramname">value</td><td>The value of the header. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="a413025134f2a459d3f2abf79d0c3ae0a" name="a413025134f2a459d3f2abf79d0c3ae0a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a413025134f2a459d3f2abf79d0c3ae0a">&#9670;&#160;</a></span>addHeader() <span class="overload">[2/2]</span></h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual void drogon::HttpRequest::addHeader </td>
          <td>(</td>
          <td class="paramtype">std::string&#160;</td>
          <td class="paramname"><em>field</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">std::string &amp;&amp;&#160;</td>
          <td class="paramname"><em>value</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<a id="aeb190035600806be1061047c86435eb6" name="aeb190035600806be1061047c86435eb6"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aeb190035600806be1061047c86435eb6">&#9670;&#160;</a></span>as()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">T drogon::HttpRequest::as </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>This template enables explicit type conversion, see the above template. </p>

</div>
</div>
<a id="accf1907d36f509e06f266266139b3b63" name="accf1907d36f509e06f266266139b3b63"></a>
<h2 class="memtitle"><span class="permalink"><a href="#accf1907d36f509e06f266266139b3b63">&#9670;&#160;</a></span>attributes()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual const <a class="el" href="namespacedrogon.html#aa12d27459d310871d4c93167431514c9">AttributesPtr</a> &amp; drogon::HttpRequest::attributes </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Get the attributes store, users can add/get any type of data to/from this store </p>

</div>
</div>
<a id="aacf900e89f8dc4ab25c83a52af0098a7" name="aacf900e89f8dc4ab25c83a52af0098a7"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aacf900e89f8dc4ab25c83a52af0098a7">&#9670;&#160;</a></span>body()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">std::string_view drogon::HttpRequest::body </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Get the content string of the request, which is the body part of the request. </p>

</div>
</div>
<a id="aa4c7273cc87ad7a67ba15276b0599780" name="aa4c7273cc87ad7a67ba15276b0599780"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa4c7273cc87ad7a67ba15276b0599780">&#9670;&#160;</a></span>bodyData()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual const char * drogon::HttpRequest::bodyData </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<a id="a18ea1443c1e8e6a363536a44e69d2836" name="a18ea1443c1e8e6a363536a44e69d2836"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a18ea1443c1e8e6a363536a44e69d2836">&#9670;&#160;</a></span>bodyLength()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual size_t drogon::HttpRequest::bodyLength </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<a id="ac5b6341fa423f837eb2ddfff2e11b4c0" name="ac5b6341fa423f837eb2ddfff2e11b4c0"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac5b6341fa423f837eb2ddfff2e11b4c0">&#9670;&#160;</a></span>connected()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual bool drogon::HttpRequest::connected </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span><span class="mlabel">noexcept</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<a id="a3f95b9911ee19fb729bc601a72999c74" name="a3f95b9911ee19fb729bc601a72999c74"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a3f95b9911ee19fb729bc601a72999c74">&#9670;&#160;</a></span>contentType()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="namespacedrogon.html#a2037a41934aeea1598d7468b4b8cb823">ContentType</a> drogon::HttpRequest::contentType </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Get the content type </p>

</div>
</div>
<a id="a833666f1c88d6a75f2e443c6d6cb2549" name="a833666f1c88d6a75f2e443c6d6cb2549"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a833666f1c88d6a75f2e443c6d6cb2549">&#9670;&#160;</a></span>cookies()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual const SafeStringMap&lt; std::string &gt; &amp; drogon::HttpRequest::cookies </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Get all cookies of the request </p>

</div>
</div>
<a id="a024176b2a34ceb593535879e7c4c5fc6" name="a024176b2a34ceb593535879e7c4c5fc6"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a024176b2a34ceb593535879e7c4c5fc6">&#9670;&#160;</a></span>creationDate()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual const trantor::Date &amp; drogon::HttpRequest::creationDate </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Return the creation timestamp set by the framework. </p>

</div>
</div>
<a id="a5f1896551c6cd9312193199f695d96bb" name="a5f1896551c6cd9312193199f695d96bb"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a5f1896551c6cd9312193199f695d96bb">&#9670;&#160;</a></span>getAttributes()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">const <a class="el" href="namespacedrogon.html#aa12d27459d310871d4c93167431514c9">AttributesPtr</a> &amp; drogon::HttpRequest::getAttributes </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Get the attributes store, users can add/get any type of data to/from this store </p>

</div>
</div>
<a id="a8ffeaaa2b7558b8a765b5554559cc883" name="a8ffeaaa2b7558b8a765b5554559cc883"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a8ffeaaa2b7558b8a765b5554559cc883">&#9670;&#160;</a></span>getBody()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">std::string_view drogon::HttpRequest::getBody </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Get the content string of the request, which is the body part of the request. </p>

</div>
</div>
<a id="a491744aad77bbeb7537acece42333d78" name="a491744aad77bbeb7537acece42333d78"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a491744aad77bbeb7537acece42333d78">&#9670;&#160;</a></span>getConnectionPtr()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual const std::weak_ptr&lt; trantor::TcpConnection &gt; &amp; drogon::HttpRequest::getConnectionPtr </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span><span class="mlabel">noexcept</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<a id="a5069f8c4bf4d31efac1b03c1c676bfa7" name="a5069f8c4bf4d31efac1b03c1c676bfa7"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a5069f8c4bf4d31efac1b03c1c676bfa7">&#9670;&#160;</a></span>getContentType()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="namespacedrogon.html#a2037a41934aeea1598d7468b4b8cb823">ContentType</a> drogon::HttpRequest::getContentType </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<a id="a8527f153ba733cfdf4f9391ee4e5bdff" name="a8527f153ba733cfdf4f9391ee4e5bdff"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a8527f153ba733cfdf4f9391ee4e5bdff">&#9670;&#160;</a></span>getCookie()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual const std::string &amp; drogon::HttpRequest::getCookie </td>
          <td>(</td>
          <td class="paramtype">const std::string &amp;&#160;</td>
          <td class="paramname"><em>field</em></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Get the cookie string identified by the field parameter </p>

</div>
</div>
<a id="a1cbed8e4eda7e691c57d787111378f18" name="a1cbed8e4eda7e691c57d787111378f18"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a1cbed8e4eda7e691c57d787111378f18">&#9670;&#160;</a></span>getCookies()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">const SafeStringMap&lt; std::string &gt; &amp; drogon::HttpRequest::getCookies </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Get all cookies of the request </p>

</div>
</div>
<a id="aa71a4f5111ad3a9e839001bf778130d2" name="aa71a4f5111ad3a9e839001bf778130d2"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa71a4f5111ad3a9e839001bf778130d2">&#9670;&#160;</a></span>getCreationDate()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">const trantor::Date &amp; drogon::HttpRequest::getCreationDate </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<a id="a060bcdf3c731e9646844a382952520b4" name="a060bcdf3c731e9646844a382952520b4"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a060bcdf3c731e9646844a382952520b4">&#9670;&#160;</a></span>getHeader()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual const std::string &amp; drogon::HttpRequest::getHeader </td>
          <td>(</td>
          <td class="paramtype">std::string&#160;</td>
          <td class="paramname"><em>key</em></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Get the header string identified by the key parameter. </p>
<dl class="section note"><dt>注解</dt><dd>If there is no the header, a empty string is returned. The key is case insensitive </dd></dl>

</div>
</div>
<a id="aef85232dc8d3e5073d7e354abcc9eb5f" name="aef85232dc8d3e5073d7e354abcc9eb5f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aef85232dc8d3e5073d7e354abcc9eb5f">&#9670;&#160;</a></span>getHeaders()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">const SafeStringMap&lt; std::string &gt; &amp; drogon::HttpRequest::getHeaders </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Get all headers of the request </p>

</div>
</div>
<a id="accd71d5fa4f022a658b425fb9af400e3" name="accd71d5fa4f022a658b425fb9af400e3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#accd71d5fa4f022a658b425fb9af400e3">&#9670;&#160;</a></span>getJsonError()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual const std::string &amp; drogon::HttpRequest::getJsonError </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Get the error message of parsing the JSON body received from peer. This method usually is called after getting a empty shared_ptr object by the <a class="el" href="classdrogon_1_1HttpRequest.html#a5b67088a4acf8e30a6a4954b8ec10ad6" title="Get the Json object of the request">getJsonObject()</a> method. </p>
<dl class="section return"><dt>返回</dt><dd>const std::string&amp; The error message. An empty string is returned when no error occurs. </dd></dl>

</div>
</div>
<a id="a5b67088a4acf8e30a6a4954b8ec10ad6" name="a5b67088a4acf8e30a6a4954b8ec10ad6"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a5b67088a4acf8e30a6a4954b8ec10ad6">&#9670;&#160;</a></span>getJsonObject()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">const std::shared_ptr&lt; Json::Value &gt; &amp; drogon::HttpRequest::getJsonObject </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Get the Json object of the request </p>

</div>
</div>
<a id="a79c9603f62bd98c7e1dbfac96509c45a" name="a79c9603f62bd98c7e1dbfac96509c45a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a79c9603f62bd98c7e1dbfac96509c45a">&#9670;&#160;</a></span>getLocalAddr()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">const trantor::InetAddress &amp; drogon::HttpRequest::getLocalAddr </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<a id="a8a94d310b1e01fe928a5427e73e4cfb9" name="a8a94d310b1e01fe928a5427e73e4cfb9"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a8a94d310b1e01fe928a5427e73e4cfb9">&#9670;&#160;</a></span>getMatchedPathPattern()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">std::string_view drogon::HttpRequest::getMatchedPathPattern </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Get the matched path pattern after routing </p>

</div>
</div>
<a id="aac203d76e055c0fb33ebbeae09c3756a" name="aac203d76e055c0fb33ebbeae09c3756a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aac203d76e055c0fb33ebbeae09c3756a">&#9670;&#160;</a></span>getMethod()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="namespacedrogon.html#a4e9a968fbdc3aa357cefc8aca7e99642">HttpMethod</a> drogon::HttpRequest::getMethod </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<a id="a6fb71306a047da66cb683e30354d8072" name="a6fb71306a047da66cb683e30354d8072"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6fb71306a047da66cb683e30354d8072">&#9670;&#160;</a></span>getMethodString()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">const char * drogon::HttpRequest::getMethodString </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<a id="a5a69f21ad5799947e3f0913a7ee092e7" name="a5a69f21ad5799947e3f0913a7ee092e7"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a5a69f21ad5799947e3f0913a7ee092e7">&#9670;&#160;</a></span>getOptionalParameter()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">std::optional&lt; T &gt; drogon::HttpRequest::getOptionalParameter </td>
          <td>(</td>
          <td class="paramtype">const std::string &amp;&#160;</td>
          <td class="paramname"><em>key</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Get the optional parameter identified by the <code>key</code>. if the parameter doesn't exist, or the original parameter can't be converted to a T type object, an empty optional object is returned. </p>
<dl class="tparams"><dt>模板参数</dt><dd>
  <table class="tparams">
    <tr><td class="paramname">T</td><td></td></tr>
  </table>
  </dd>
</dl>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramname">key</td><td></td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>返回</dt><dd>optional&lt;T&gt; </dd></dl>

</div>
</div>
<a id="a7ddf25ec9dce5903d82a4fcb44c6b288" name="a7ddf25ec9dce5903d82a4fcb44c6b288"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a7ddf25ec9dce5903d82a4fcb44c6b288">&#9670;&#160;</a></span>getOriginalPath()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual const std::string &amp; drogon::HttpRequest::getOriginalPath </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Get the original path of the request.(before url-decoding) </p>

</div>
</div>
<a id="a28bf720d0a46cf02ad35a306e74c7be9" name="a28bf720d0a46cf02ad35a306e74c7be9"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a28bf720d0a46cf02ad35a306e74c7be9">&#9670;&#160;</a></span>getParameter()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual const std::string &amp; drogon::HttpRequest::getParameter </td>
          <td>(</td>
          <td class="paramtype">const std::string &amp;&#160;</td>
          <td class="paramname"><em>key</em></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Get a parameter identified by the </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramname">key</td><td></td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="a753fbdc4223c99d80c1707aa9e5178ce" name="a753fbdc4223c99d80c1707aa9e5178ce"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a753fbdc4223c99d80c1707aa9e5178ce">&#9670;&#160;</a></span>getParameters()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">const SafeStringMap&lt; std::string &gt; &amp; drogon::HttpRequest::getParameters </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Get parameters of the request. </p>

</div>
</div>
<a id="a29bd261db20da296114b8510a07f337b" name="a29bd261db20da296114b8510a07f337b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a29bd261db20da296114b8510a07f337b">&#9670;&#160;</a></span>getPath()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">const std::string &amp; drogon::HttpRequest::getPath </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Get the path of the request. </p>

</div>
</div>
<a id="a62ca076631e1531bf352495d9d8fcbd2" name="a62ca076631e1531bf352495d9d8fcbd2"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a62ca076631e1531bf352495d9d8fcbd2">&#9670;&#160;</a></span>getPeerAddr()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">const trantor::InetAddress &amp; drogon::HttpRequest::getPeerAddr </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<a id="a367158ef76fe6512fc999e4002ef3779" name="a367158ef76fe6512fc999e4002ef3779"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a367158ef76fe6512fc999e4002ef3779">&#9670;&#160;</a></span>getPeerCertificate()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">const trantor::CertificatePtr &amp; drogon::HttpRequest::getPeerCertificate </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<a id="acdd06fd1af970724c8423c2f2becd15b" name="acdd06fd1af970724c8423c2f2becd15b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#acdd06fd1af970724c8423c2f2becd15b">&#9670;&#160;</a></span>getQuery()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">const std::string &amp; drogon::HttpRequest::getQuery </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Get the query string of the request. </p>

</div>
</div>
<a id="adb8f85ee0232567b0ec7e32f9d2cff01" name="adb8f85ee0232567b0ec7e32f9d2cff01"></a>
<h2 class="memtitle"><span class="permalink"><a href="#adb8f85ee0232567b0ec7e32f9d2cff01">&#9670;&#160;</a></span>getRealContentLength()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">size_t drogon::HttpRequest::getRealContentLength </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<a id="a04f4ade116aa2a55bc0294983c00dfe4" name="a04f4ade116aa2a55bc0294983c00dfe4"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a04f4ade116aa2a55bc0294983c00dfe4">&#9670;&#160;</a></span>getRoutingParameters()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual const std::vector&lt; std::string &gt; &amp; drogon::HttpRequest::getRoutingParameters </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Get the matched path pattern after routing (including matched parameters in the query string) </p>

</div>
</div>
<a id="a8675d231a9703a305a32c8a8ca05baaf" name="a8675d231a9703a305a32c8a8ca05baaf"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a8675d231a9703a305a32c8a8ca05baaf">&#9670;&#160;</a></span>getSession()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">const <a class="el" href="namespacedrogon.html#af0ccaa26ab9bac38fbfa3caf29a9d970">SessionPtr</a> &amp; drogon::HttpRequest::getSession </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Get the session to which the request belongs. </p>

</div>
</div>
<a id="a5ab9cf2fd734dcd1cbfa861889e269d5" name="a5ab9cf2fd734dcd1cbfa861889e269d5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a5ab9cf2fd734dcd1cbfa861889e269d5">&#9670;&#160;</a></span>getVersion()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="namespacedrogon.html#ac6b3a6bb435a379d956658fa20b067c1">Version</a> drogon::HttpRequest::getVersion </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Return the enum type version of the request. </p>

</div>
</div>
<a id="a4f11566aaf1af116d0c2e036ef4a1bfc" name="a4f11566aaf1af116d0c2e036ef4a1bfc"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a4f11566aaf1af116d0c2e036ef4a1bfc">&#9670;&#160;</a></span>getVersionString()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">const char * drogon::HttpRequest::getVersionString </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<a id="abc95612c7b9bc03d4480f8014d2c72d4" name="abc95612c7b9bc03d4480f8014d2c72d4"></a>
<h2 class="memtitle"><span class="permalink"><a href="#abc95612c7b9bc03d4480f8014d2c72d4">&#9670;&#160;</a></span>headers()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual const SafeStringMap&lt; std::string &gt; &amp; drogon::HttpRequest::headers </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Get all headers of the request </p>

</div>
</div>
<a id="a6763d56768cd69bcd4192646afa1fd62" name="a6763d56768cd69bcd4192646afa1fd62"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6763d56768cd69bcd4192646afa1fd62">&#9670;&#160;</a></span>isHead()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual bool drogon::HttpRequest::isHead </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Check if the method is or was <a class="el" href="namespacedrogon.html#a4e9a968fbdc3aa357cefc8aca7e99642aed78e3fb60cf298f854ef1be5fb94868">HttpMethod::Head</a> </p>
<p>Allows to know that an incoming request is a HEAD request, since drogon sets the method to <a class="el" href="namespacedrogon.html#a4e9a968fbdc3aa357cefc8aca7e99642a75fb549258cb7c0e1f7e4af3c67c3f1c">HttpMethod::Get</a> before calling the controller </p><dl class="section return"><dt>返回</dt><dd>true if <a class="el" href="classdrogon_1_1HttpRequest.html#a048f166aa73dead14bbcc3f25bca38bf" title="Return the enum type method of the request.">method()</a> returns <a class="el" href="namespacedrogon.html#a4e9a968fbdc3aa357cefc8aca7e99642aed78e3fb60cf298f854ef1be5fb94868">HttpMethod::Head</a>, or <a class="el" href="namespacedrogon.html#a4e9a968fbdc3aa357cefc8aca7e99642a75fb549258cb7c0e1f7e4af3c67c3f1c">HttpMethod::Get</a> but was previously <a class="el" href="namespacedrogon.html#a4e9a968fbdc3aa357cefc8aca7e99642aed78e3fb60cf298f854ef1be5fb94868">HttpMethod::Head</a> </dd></dl>

</div>
</div>
<a id="acfe3fda6caec7005531122271dee5f40" name="acfe3fda6caec7005531122271dee5f40"></a>
<h2 class="memtitle"><span class="permalink"><a href="#acfe3fda6caec7005531122271dee5f40">&#9670;&#160;</a></span>isOnSecureConnection()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual bool drogon::HttpRequest::isOnSecureConnection </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span><span class="mlabel">noexcept</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<a id="aaa642f22265dd40f58e1c649e9617192" name="aaa642f22265dd40f58e1c649e9617192"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aaa642f22265dd40f58e1c649e9617192">&#9670;&#160;</a></span>jsonObject()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual const std::shared_ptr&lt; Json::Value &gt; &amp; drogon::HttpRequest::jsonObject </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Get the Json object of the request </p>
<p>The content type of the request must be 'application/json', otherwise the method returns an empty shared_ptr object. </p>

</div>
</div>
<a id="a80e2f03b2d000eaadc050a92efb85201" name="a80e2f03b2d000eaadc050a92efb85201"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a80e2f03b2d000eaadc050a92efb85201">&#9670;&#160;</a></span>localAddr()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual const trantor::InetAddress &amp; drogon::HttpRequest::localAddr </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Return the local IP address and port </p>

</div>
</div>
<a id="a4bd8206194768d907decd10ae565d600" name="a4bd8206194768d907decd10ae565d600"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a4bd8206194768d907decd10ae565d600">&#9670;&#160;</a></span>matchedPathPattern()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">std::string_view drogon::HttpRequest::matchedPathPattern </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Get the matched path pattern after routing </p>

</div>
</div>
<a id="acd5462a19d0f6e58e59eccb54a0e3417" name="acd5462a19d0f6e58e59eccb54a0e3417"></a>
<h2 class="memtitle"><span class="permalink"><a href="#acd5462a19d0f6e58e59eccb54a0e3417">&#9670;&#160;</a></span>matchedPathPatternData()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual const char * drogon::HttpRequest::matchedPathPatternData </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<a id="a864a6d9debc84e0ee3b47bd367ff2f39" name="a864a6d9debc84e0ee3b47bd367ff2f39"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a864a6d9debc84e0ee3b47bd367ff2f39">&#9670;&#160;</a></span>matchedPathPatternLength()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual size_t drogon::HttpRequest::matchedPathPatternLength </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<a id="a048f166aa73dead14bbcc3f25bca38bf" name="a048f166aa73dead14bbcc3f25bca38bf"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a048f166aa73dead14bbcc3f25bca38bf">&#9670;&#160;</a></span>method()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="namespacedrogon.html#a4e9a968fbdc3aa357cefc8aca7e99642">HttpMethod</a> drogon::HttpRequest::method </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Return the enum type method of the request. </p>

</div>
</div>
<a id="a2669bfbd165bf1473ec0fa4a9feba16a" name="a2669bfbd165bf1473ec0fa4a9feba16a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2669bfbd165bf1473ec0fa4a9feba16a">&#9670;&#160;</a></span>methodString()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual const char * drogon::HttpRequest::methodString </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Return the method string of the request, such as GET, POST, etc. </p>

</div>
</div>
<a id="a005a1d7c15be4a8abe28242c24e9ac61" name="a005a1d7c15be4a8abe28242c24e9ac61"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a005a1d7c15be4a8abe28242c24e9ac61">&#9670;&#160;</a></span>newCustomHttpRequest()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static <a class="el" href="namespacedrogon.html#a5200699555f98a809538342baa167aad">HttpRequestPtr</a> drogon::HttpRequest::newCustomHttpRequest </td>
          <td>(</td>
          <td class="paramtype">T &amp;&amp;&#160;</td>
          <td class="paramname"><em>obj</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Create a custom HTTP request object. For using this template, users must specialize the toRequest template. </p>

</div>
</div>
<a id="af86db6d05493f9b70823b74c1ce596a1" name="af86db6d05493f9b70823b74c1ce596a1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af86db6d05493f9b70823b74c1ce596a1">&#9670;&#160;</a></span>newFileUploadRequest()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static <a class="el" href="namespacedrogon.html#a5200699555f98a809538342baa167aad">HttpRequestPtr</a> drogon::HttpRequest::newFileUploadRequest </td>
          <td>(</td>
          <td class="paramtype">const std::vector&lt; <a class="el" href="classdrogon_1_1UploadFile.html">UploadFile</a> &gt; &amp;&#160;</td>
          <td class="paramname"><em>files</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Create a http file upload request with: Method: Post Version: Http1.1 Content type: multipart/form-data The</p><dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramname">files</td><td>represents pload files which are transferred to the server via the multipart/form-data format </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="a4b41057d6a8dd9042f889d92ae5d4472" name="a4b41057d6a8dd9042f889d92ae5d4472"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a4b41057d6a8dd9042f889d92ae5d4472">&#9670;&#160;</a></span>newHttpFormPostRequest()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static <a class="el" href="namespacedrogon.html#a5200699555f98a809538342baa167aad">HttpRequestPtr</a> drogon::HttpRequest::newHttpFormPostRequest </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Create a http request with: Method: Post Version: Http1.1 Content type: application/x-www-form-urlencoded </p>

</div>
</div>
<a id="aca350e8c1b4ee54458d13c5cbde47950" name="aca350e8c1b4ee54458d13c5cbde47950"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aca350e8c1b4ee54458d13c5cbde47950">&#9670;&#160;</a></span>newHttpJsonRequest()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static <a class="el" href="namespacedrogon.html#a5200699555f98a809538342baa167aad">HttpRequestPtr</a> drogon::HttpRequest::newHttpJsonRequest </td>
          <td>(</td>
          <td class="paramtype">const Json::Value &amp;&#160;</td>
          <td class="paramname"><em>data</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Create a http request with: Method: Get Version: Http1.1 Content type: application/json, the</p><dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramname">data</td><td>is serialized into the content of the request. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="a4ce310707acce8c34bbc60cb217acd28" name="a4ce310707acce8c34bbc60cb217acd28"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a4ce310707acce8c34bbc60cb217acd28">&#9670;&#160;</a></span>newHttpRequest()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static <a class="el" href="namespacedrogon.html#a5200699555f98a809538342baa167aad">HttpRequestPtr</a> drogon::HttpRequest::newHttpRequest </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Create a normal request with http method Get and version Http1.1. </p>
<p>The following methods are a series of factory methods that help users create request objects. </p>

</div>
</div>
<a id="acc72785a533037e590f115fe5bd6c75d" name="acc72785a533037e590f115fe5bd6c75d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#acc72785a533037e590f115fe5bd6c75d">&#9670;&#160;</a></span>operator T()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">drogon::HttpRequest::operator T </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>This template enables implicit type conversion. For using this template, user must specialize the fromRequest template. For example a shared_ptr&lt;Json::Value&gt; specialization version is available above, so we can use the following code to get a json object: </p>
<div class="fragment"><div class="line">std::shared_ptr&lt;Json::Value&gt; jsonPtr = *requestPtr;</div>
</div><!-- fragment --><p> With this template, user can use their favorite JSON library instead of the default jsoncpp library or convert the request to an object of any custom type. </p>

</div>
</div>
<a id="a54bb14c12a910bd555547d5a537db214" name="a54bb14c12a910bd555547d5a537db214"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a54bb14c12a910bd555547d5a537db214">&#9670;&#160;</a></span>parameters()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual const SafeStringMap&lt; std::string &gt; &amp; drogon::HttpRequest::parameters </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Get parameters of the request. </p>

</div>
</div>
<a id="a5f5eed4854c6b7568db430629ead60ae" name="a5f5eed4854c6b7568db430629ead60ae"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a5f5eed4854c6b7568db430629ead60ae">&#9670;&#160;</a></span>path()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual const std::string &amp; drogon::HttpRequest::path </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Get the path of the request. </p>

</div>
</div>
<a id="a609abcdabd8afa356ecb812cd16caa4e" name="a609abcdabd8afa356ecb812cd16caa4e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a609abcdabd8afa356ecb812cd16caa4e">&#9670;&#160;</a></span>peerAddr()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual const trantor::InetAddress &amp; drogon::HttpRequest::peerAddr </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Return the remote IP address and port </p>

</div>
</div>
<a id="adcf8ea232ecc123049303ea898fc23ca" name="adcf8ea232ecc123049303ea898fc23ca"></a>
<h2 class="memtitle"><span class="permalink"><a href="#adcf8ea232ecc123049303ea898fc23ca">&#9670;&#160;</a></span>peerCertificate()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual const trantor::CertificatePtr &amp; drogon::HttpRequest::peerCertificate </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<a id="a76f2e55af8c68dd74006f472ddf93b86" name="a76f2e55af8c68dd74006f472ddf93b86"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a76f2e55af8c68dd74006f472ddf93b86">&#9670;&#160;</a></span>query()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual const std::string &amp; drogon::HttpRequest::query </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Get the query string of the request. </p>
<p>The query string is the substring after the '?' in the URL string. </p>

</div>
</div>
<a id="a6b613b012cd4f11edcf3aa942949abc2" name="a6b613b012cd4f11edcf3aa942949abc2"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6b613b012cd4f11edcf3aa942949abc2">&#9670;&#160;</a></span>realContentLength()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual size_t drogon::HttpRequest::realContentLength </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Return content length parsed from the Content-Length header If no Content-Length header, return null. </p>

</div>
</div>
<a id="a705b138e5b8d3b6c8927f5b79e1691d6" name="a705b138e5b8d3b6c8927f5b79e1691d6"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a705b138e5b8d3b6c8927f5b79e1691d6">&#9670;&#160;</a></span>removeHeader()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual void drogon::HttpRequest::removeHeader </td>
          <td>(</td>
          <td class="paramtype">std::string&#160;</td>
          <td class="paramname"><em>key</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Remove the header identified by the key parameter. </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramname">key</td><td>The key is case insensitive </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="a4c2f90190752e4807b9e0f482617929c" name="a4c2f90190752e4807b9e0f482617929c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a4c2f90190752e4807b9e0f482617929c">&#9670;&#160;</a></span>session()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual const <a class="el" href="namespacedrogon.html#af0ccaa26ab9bac38fbfa3caf29a9d970">SessionPtr</a> &amp; drogon::HttpRequest::session </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Get the session to which the request belongs. </p>

</div>
</div>
<a id="a645260380cd6a0ecb0cfbb500e6780b6" name="a645260380cd6a0ecb0cfbb500e6780b6"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a645260380cd6a0ecb0cfbb500e6780b6">&#9670;&#160;</a></span>setBody() <span class="overload">[1/2]</span></h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual void drogon::HttpRequest::setBody </td>
          <td>(</td>
          <td class="paramtype">const std::string &amp;&#160;</td>
          <td class="paramname"><em>body</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Set the content string of the request. </p>

</div>
</div>
<a id="a631ea22a1cd899492755aa82cb248fe1" name="a631ea22a1cd899492755aa82cb248fe1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a631ea22a1cd899492755aa82cb248fe1">&#9670;&#160;</a></span>setBody() <span class="overload">[2/2]</span></h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual void drogon::HttpRequest::setBody </td>
          <td>(</td>
          <td class="paramtype">std::string &amp;&amp;&#160;</td>
          <td class="paramname"><em>body</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Set the content string of the request. </p>

</div>
</div>
<a id="aa4c26d3241c102624af7c35cec6f6428" name="aa4c26d3241c102624af7c35cec6f6428"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa4c26d3241c102624af7c35cec6f6428">&#9670;&#160;</a></span>setContentTypeCode()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual void drogon::HttpRequest::setContentTypeCode </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="namespacedrogon.html#a2037a41934aeea1598d7468b4b8cb823">ContentType</a>&#160;</td>
          <td class="paramname"><em>type</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Set or get the content type </p>

</div>
</div>
<a id="a12c2921e141a4c70e0ab798ec17c3ffd" name="a12c2921e141a4c70e0ab798ec17c3ffd"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a12c2921e141a4c70e0ab798ec17c3ffd">&#9670;&#160;</a></span>setContentTypeString() <span class="overload">[1/2]</span></h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual void drogon::HttpRequest::setContentTypeString </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>typeString</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>typeStringLength</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<a id="a3b301645ade6d935e8e3774aa6a20256" name="a3b301645ade6d935e8e3774aa6a20256"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a3b301645ade6d935e8e3774aa6a20256">&#9670;&#160;</a></span>setContentTypeString() <span class="overload">[2/2]</span></h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void drogon::HttpRequest::setContentTypeString </td>
          <td>(</td>
          <td class="paramtype">const std::string_view &amp;&#160;</td>
          <td class="paramname"><em>typeString</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>For example, "content-type: text/plain\r\n" or "text/plain" </p>
<p>Set the content-type string, The string may contain the header name and CRLF. Or just the MIME type </p>

</div>
</div>
<a id="a58760d7eb7ea7eb8a48fb5a625bd2b9a" name="a58760d7eb7ea7eb8a48fb5a625bd2b9a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a58760d7eb7ea7eb8a48fb5a625bd2b9a">&#9670;&#160;</a></span>setCustomContentTypeString()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual void drogon::HttpRequest::setCustomContentTypeString </td>
          <td>(</td>
          <td class="paramtype">const std::string &amp;&#160;</td>
          <td class="paramname"><em>type</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Set the request content-type string, The string must contain the header name and CRLF. For example, "content-type: text/plain\r\n" </p>

</div>
</div>
<a id="ad10c2740f72a0861ed8cf57e439b8a01" name="ad10c2740f72a0861ed8cf57e439b8a01"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad10c2740f72a0861ed8cf57e439b8a01">&#9670;&#160;</a></span>setMethod()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual void drogon::HttpRequest::setMethod </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="namespacedrogon.html#a4e9a968fbdc3aa357cefc8aca7e99642">HttpMethod</a>&#160;</td>
          <td class="paramname"><em>method</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Set the Http method </p>

</div>
</div>
<a id="a5e180b9572c51f1404dde91786efd8eb" name="a5e180b9572c51f1404dde91786efd8eb"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a5e180b9572c51f1404dde91786efd8eb">&#9670;&#160;</a></span>setParameter()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual void drogon::HttpRequest::setParameter </td>
          <td>(</td>
          <td class="paramtype">const std::string &amp;&#160;</td>
          <td class="paramname"><em>key</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const std::string &amp;&#160;</td>
          <td class="paramname"><em>value</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Set the parameter of the request </p>

</div>
</div>
<a id="acc00a936c71b0e19e6e78f482c15a8de" name="acc00a936c71b0e19e6e78f482c15a8de"></a>
<h2 class="memtitle"><span class="permalink"><a href="#acc00a936c71b0e19e6e78f482c15a8de">&#9670;&#160;</a></span>setPassThrough()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual void drogon::HttpRequest::setPassThrough </td>
          <td>(</td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>flag</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Set the request object to the pass-through mode or not. It's not by default when a new request object is created. In pass-through mode, no additional headers (including user-agent, connection, etc.) are added to the request. This mode is useful for some applications such as a proxy. </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramname">flag</td><td></td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="a4e12be07501f106474ab3502f0a14a44" name="a4e12be07501f106474ab3502f0a14a44"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a4e12be07501f106474ab3502f0a14a44">&#9670;&#160;</a></span>setPath() <span class="overload">[1/2]</span></h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual void drogon::HttpRequest::setPath </td>
          <td>(</td>
          <td class="paramtype">const std::string &amp;&#160;</td>
          <td class="paramname"><em>path</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Set the path of the request </p>

</div>
</div>
<a id="a4a0e6b6f5fa434aa6efebf98f21c406a" name="a4a0e6b6f5fa434aa6efebf98f21c406a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a4a0e6b6f5fa434aa6efebf98f21c406a">&#9670;&#160;</a></span>setPath() <span class="overload">[2/2]</span></h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual void drogon::HttpRequest::setPath </td>
          <td>(</td>
          <td class="paramtype">std::string &amp;&amp;&#160;</td>
          <td class="paramname"><em>path</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<a id="a60d2ce355c5daa9d284a744342b9fb58" name="a60d2ce355c5daa9d284a744342b9fb58"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a60d2ce355c5daa9d284a744342b9fb58">&#9670;&#160;</a></span>setPathEncode()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual void drogon::HttpRequest::setPathEncode </td>
          <td>(</td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>The default behavior is to encode the value of setPath using urlEncode. Setting the path encode to false avoid the value of path will be changed by the library </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramname">bool</td><td>true --&gt; the path will be url encoded false --&gt; using value of path as it is set </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="a5f7ca8804ae1b294a02ce4b6dea25b57" name="a5f7ca8804ae1b294a02ce4b6dea25b57"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a5f7ca8804ae1b294a02ce4b6dea25b57">&#9670;&#160;</a></span>setRoutingParameters()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual void drogon::HttpRequest::setRoutingParameters </td>
          <td>(</td>
          <td class="paramtype">std::vector&lt; std::string &gt; &amp;&amp;&#160;</td>
          <td class="paramname"><em>params</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>This method usually is called by the framework. </p>

</div>
</div>
<a id="a096b7dd2522108681042cd31a648ec15" name="a096b7dd2522108681042cd31a648ec15"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a096b7dd2522108681042cd31a648ec15">&#9670;&#160;</a></span>version()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="namespacedrogon.html#ac6b3a6bb435a379d956658fa20b067c1">Version</a> drogon::HttpRequest::version </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Return the enum type version of the request. </p>
<p>kHttp10 means Http version is 1.0 kHttp11 means Http version is 1.1 </p>

</div>
</div>
<a id="af7933dab06e890a0a239273a4679dc85" name="af7933dab06e890a0a239273a4679dc85"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af7933dab06e890a0a239273a4679dc85">&#9670;&#160;</a></span>versionString()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual const char * drogon::HttpRequest::versionString </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Return the string of http version of request, such as HTTP/1.0, HTTP/1.1, etc. </p>

</div>
</div>
<hr/>该类的文档由以下文件生成:<ul>
<li><a class="el" href="HttpRequest_8h_source.html">HttpRequest.h</a></li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
制作者&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.8
</small></address>
</body>
</html>
